{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from mikeio import Dfs0\n",
    "from mikeio.eum import TimeStep, ItemInfo, EUMType, EUMUnit\n",
    "from datetime import datetime, timedelta"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Create a timeseries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = []\n",
    "\n",
    "nt = 10\n",
    "d1 = np.zeros(nt)\n",
    "data.append(d1)\n",
    "d2 = np.ones(nt)\n",
    "data.append(d2)\n",
    "\n",
    "items = [ItemInfo(\"Zeros\", EUMType.Water_Level, EUMUnit.meter), \n",
    "         ItemInfo(\"Ones\", EUMType.Discharge, EUMUnit.meter_pow_3_per_sec)]\n",
    "\n",
    "dfs = Dfs0()\n",
    "\n",
    "dfs.create(filename=\"test.dfs0\", data=data, items=items, title=\"Zeros and ones\",\n",
    "           start_time=datetime(2000,1,1),\n",
    "           timeseries_unit=TimeStep.SECOND, dt=3600)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## From comma separated file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Decimal Date</th>\n",
       "      <th>Average</th>\n",
       "      <th>Interpolated</th>\n",
       "      <th>Trend</th>\n",
       "      <th>Number of Days</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1958-03-01</th>\n",
       "      <td>1958.208</td>\n",
       "      <td>315.71</td>\n",
       "      <td>315.71</td>\n",
       "      <td>314.62</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1958-04-01</th>\n",
       "      <td>1958.292</td>\n",
       "      <td>317.45</td>\n",
       "      <td>317.45</td>\n",
       "      <td>315.29</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1958-05-01</th>\n",
       "      <td>1958.375</td>\n",
       "      <td>317.50</td>\n",
       "      <td>317.50</td>\n",
       "      <td>314.71</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1958-06-01</th>\n",
       "      <td>1958.458</td>\n",
       "      <td>NaN</td>\n",
       "      <td>317.10</td>\n",
       "      <td>314.85</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1958-07-01</th>\n",
       "      <td>1958.542</td>\n",
       "      <td>315.86</td>\n",
       "      <td>315.86</td>\n",
       "      <td>314.98</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Decimal Date  Average  Interpolated   Trend  Number of Days\n",
       "Date                                                                   \n",
       "1958-03-01      1958.208   315.71        315.71  314.62              -1\n",
       "1958-04-01      1958.292   317.45        317.45  315.29              -1\n",
       "1958-05-01      1958.375   317.50        317.50  314.71              -1\n",
       "1958-06-01      1958.458      NaN        317.10  314.85              -1\n",
       "1958-07-01      1958.542   315.86        315.86  314.98              -1"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "df = pd.read_csv(\"../tests/testdata/co2-mm-mlo.csv\", parse_dates=True,index_col='Date',na_values=-99.99)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Remove missing values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df[[\"Average\",\"Trend\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x298e92f0108>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A dataframe with a datetimeindex can be used to create a dfs 0 with a non-equidistant time axis."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.to_dfs0(\"mauna_loa_co2.dfs0\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To get a equidistant time axis first interpolate to hourly values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_h = df.resample('h').interpolate()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_h.to_dfs0(\"mauna_loa_co2_eq_1hr.dfs0\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Read a timeseries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "res = dfs.read(\"test.dfs0\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Zeros <Water Level> (meter), Ones <Discharge> (meter pow 3 per sec)]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res.items"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[datetime.datetime(2000, 1, 1, 0, 0),\n",
       " datetime.datetime(2000, 1, 1, 1, 0),\n",
       " datetime.datetime(2000, 1, 1, 2, 0),\n",
       " datetime.datetime(2000, 1, 1, 3, 0),\n",
       " datetime.datetime(2000, 1, 1, 4, 0),\n",
       " datetime.datetime(2000, 1, 1, 5, 0),\n",
       " datetime.datetime(2000, 1, 1, 6, 0),\n",
       " datetime.datetime(2000, 1, 1, 7, 0),\n",
       " datetime.datetime(2000, 1, 1, 8, 0),\n",
       " datetime.datetime(2000, 1, 1, 9, 0)]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res.time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
       " array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res.data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Or as a Pandas dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>State 1Sign. Wave Height</th>\n",
       "      <th>State 2Sign. Wave Height</th>\n",
       "      <th>Mean StateSign. Wave Height</th>\n",
       "      <th>MeasurementSign. Wave Height</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-10-27 00:00:00</th>\n",
       "      <td>1.749465</td>\n",
       "      <td>1.749465</td>\n",
       "      <td>1.749465</td>\n",
       "      <td>1.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-10-27 00:10:00</th>\n",
       "      <td>1.811340</td>\n",
       "      <td>1.796895</td>\n",
       "      <td>1.807738</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-10-27 00:20:00</th>\n",
       "      <td>1.863424</td>\n",
       "      <td>1.842759</td>\n",
       "      <td>1.853422</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-10-27 00:30:00</th>\n",
       "      <td>1.922261</td>\n",
       "      <td>1.889839</td>\n",
       "      <td>1.897670</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-10-27 00:40:00</th>\n",
       "      <td>1.972455</td>\n",
       "      <td>1.934886</td>\n",
       "      <td>1.935281</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     State 1Sign. Wave Height  State 2Sign. Wave Height  \\\n",
       "2017-10-27 00:00:00                  1.749465                  1.749465   \n",
       "2017-10-27 00:10:00                  1.811340                  1.796895   \n",
       "2017-10-27 00:20:00                  1.863424                  1.842759   \n",
       "2017-10-27 00:30:00                  1.922261                  1.889839   \n",
       "2017-10-27 00:40:00                  1.972455                  1.934886   \n",
       "\n",
       "                     Mean StateSign. Wave Height  MeasurementSign. Wave Height  \n",
       "2017-10-27 00:00:00                     1.749465                          1.72  \n",
       "2017-10-27 00:10:00                     1.807738                           NaN  \n",
       "2017-10-27 00:20:00                     1.853422                           NaN  \n",
       "2017-10-27 00:30:00                     1.897670                           NaN  \n",
       "2017-10-27 00:40:00                     1.935281                           NaN  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dfs0file = r\"../tests/testdata/da_diagnostic.dfs0\"\n",
    "\n",
    "dfs = Dfs0()\n",
    "df = dfs.to_dataframe(dfs0file)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>VarFun01</th>\n",
       "      <th>NotFun</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-01-01 00:00:00</th>\n",
       "      <td>0.843547</td>\n",
       "      <td>0.640486</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-01 05:00:00</th>\n",
       "      <td>0.093729</td>\n",
       "      <td>0.653257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-01 10:00:00</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-01 15:00:00</th>\n",
       "      <td>0.305065</td>\n",
       "      <td>0.214208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-01 20:00:00</th>\n",
       "      <td>0.900190</td>\n",
       "      <td>0.999157</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     VarFun01    NotFun\n",
       "2017-01-01 00:00:00  0.843547  0.640486\n",
       "2017-01-01 05:00:00  0.093729  0.653257\n",
       "2017-01-01 10:00:00       NaN       NaN\n",
       "2017-01-01 15:00:00  0.305065  0.214208\n",
       "2017-01-01 20:00:00  0.900190  0.999157"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dfs0file = r\"../tests/testdata/random.dfs0\"\n",
    "\n",
    "dfs = Dfs0()\n",
    "df = dfs.to_dataframe(dfs0file)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create a timeseries with non-equidistant data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = []\n",
    "\n",
    "d1 = np.random.uniform(low=0.0, high=5.0, size=5)\n",
    "data.append(d1)\n",
    "\n",
    "datetimes = [\n",
    "    datetime(2000, 1, 1, 0, 0),\n",
    "    datetime(2000, 1, 8, 0, 0),\n",
    "    datetime(2000, 1, 10, 0, 0),\n",
    "    datetime(2000, 2, 22, 0, 0),\n",
    "    datetime(2000, 11, 29, 0, 0)\n",
    "]\n",
    "\n",
    "dfs = Dfs0()\n",
    "\n",
    "\n",
    "dfs.create(filename=\"neq.dfs0\",\n",
    "           datetimes=datetimes, \n",
    "           data=data,\n",
    "           title=\"Non equidistant\"\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create a timeseries with accumulated timestep"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Find correct eum units"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Correction of precipitation,\n",
       " Precipitation correction,\n",
       " Precipitation,\n",
       " Specific Precipitation,\n",
       " Precipitation Rate]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "EUMType.search(\"prec\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[mm per day,\n",
       " mm per hour,\n",
       " cm per hour,\n",
       " meter per sec,\n",
       " meter per day,\n",
       " feet per day,\n",
       " inch per hour,\n",
       " inch per min,\n",
       " inch per day,\n",
       " mm per year]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "EUMType.Precipitation_Rate.units"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "from DHI.Generic.MikeZero.DFS import DataValueType\n",
    "n= 1000\n",
    "d1 = np.random.random([n])\n",
    "d2 = np.random.random([n])\n",
    "data = []\n",
    "data.append(d1)\n",
    "data.append(d2)\n",
    "start_time = datetime(2017, 1, 1)\n",
    "time_vector = []\n",
    "t = start_time\n",
    "random_dt = np.random.choice([1.0,2.0],size=n)\n",
    "for i in range(n):\n",
    "    t = t + timedelta(hours=random_dt[i])\n",
    "    time_vector.append(t)\n",
    "title = 'Hello Test'\n",
    "\n",
    "items = [ItemInfo(EUMType.Water_Level), # use default name and unit based on type\n",
    "        ItemInfo(\"Nedbør\", EUMType.Precipitation_Rate)] # use a custom name\n",
    "\n",
    "data_value_type = [DataValueType.Instantaneous, DataValueType.Accumulated]\n",
    "\n",
    "dfs = Dfs0()\n",
    "dfs.create(filename='accumulated.dfs0', data=data,\n",
    "        datetimes=time_vector,\n",
    "        items=items, title=title,\n",
    "        data_value_type=data_value_type)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Water Level <Water Level> (meter), Nedbør <Precipitation Rate> (mm per day)]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ds = dfs.read(\"accumulated.dfs0\")\n",
    "ds.items"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Modify an existing timeseries\n",
    "\n",
    "The `write` method allows to modify the data without the need of specifying names, units etc. If you need to add variables, rename, change units, you must use `create` instead."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DataSet(data, time, items)\n",
       "Number of items: 2\n",
       "Shape: (10,)\n",
       "2000-01-01 00:00:00 - 2000-01-01 09:00:00"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res = dfs.read(\"test.dfs0\")\n",
    "res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res['Ones']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Modify the data in some way..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265,\n",
       "       3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = res.data\n",
    "data[1] = data[1]*np.pi\n",
    "data[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "from shutil import copyfile\n",
    "copyfile(\"test.dfs0\",\"modified.dfs0\")\n",
    "dfs.write(\"modified.dfs0\", data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3.14159274, 3.14159274, 3.14159274, 3.14159274, 3.14159274,\n",
       "       3.14159274, 3.14159274, 3.14159274, 3.14159274, 3.14159274])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res = dfs.read(\"modified.dfs0\")\n",
    "res['Ones']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The second item is modified."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res['Zeros']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Convert units\n",
    "\n",
    "Read a file with waterlevel i meters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[ST 2: WL (m) <Water Level> (meter)]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dfs = Dfs0()\n",
    "filename = r\"C:\\Program Files (x86)\\DHI\\2020\\MIKE Zero\\Examples\\MIKE_21\\FlowModel_FM\\HD\\Oresund\\Data\\1993\\Boundary_Conditions\\waterlevel_viken.dfs0\"\n",
    "\n",
    "ds = dfs.read(filename)\n",
    "ds.items"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAD4CAYAAADy46FuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9d5hkV33n/T2Vc1fsNN09WTMaZTEISUgggpBsUMAGG+xdi3fxwq6xvbZZ/PIYG3uFAzZrm5e1d43WJhhswBjbiGBAIFBAKIzSJE2e6enc1dWVczjvH/eeW+neW9Xd99atqj6f5+mnq6tuV51K93d+6fsjlFJwOBwOh6OEyegFcDgcDqe/4YaCw+FwOKpwQ8HhcDgcVbih4HA4HI4q3FBwOBwORxWL0QvQmnA4THft2mX0MjgcDmegeP7559copRG524bOUOzatQtHjhwxehkcDoczUBBCZpVu46EnDofD4ajCDQWHw+FwVOGGgsPhcDiqcEPB4XA4HFW4oeBwOByOKtxQcDgcDkcVbig4HA6Howo3FJyeUKtRPH4mir//ySVUa1zansMZJIau4Y7Tn3zz2BJ+/UsvAgCmgy684cCowSvicDjdwj0KTk84sZiEiQA2swlPnl0zejkcDmcDcI+C0xPOrWRwxZgXYY+dGwoOZ8DgHgWnJ5xdzWDfqAe37Q/j9Eoaq6mC0UvicDhdwg0FR3fypSrm4jnsH/Xi1buCAICj80mDV8XhcLqFGwqO7pyPZkApsG/Ug10hFwBgLp4zeFUcDqdbuKHg6M651QwAYP+YB0G3DW6bGZfXuaHgcAYFbig4urOQyAMAZoIuEEIwHXRhjhsKDmdg4IaCozurqQK8DgscVjMAYCrgxHw8b/CqOBxOt3BDwdGdaKaIUa9d+jvidSCaLhq4Ig6HsxG4oeDozmqqiEiDoRj12hHLllCu1gxcFYfD6RZuKDi6I3gUDunvUZ9gNNYy3KvgcAYBbig4uhNNFxH2NHoUDul6DofT/3BDwdGVQrmKXKmKoNsqXcfyFaspbig4nEGAGwqOriRyZQCA32WTrmOhp1XuUXA4AwE3FBxdiedKAIBAg6FgYajVNNd74nAGAW4oOLpSNxT10JPVbELQbeMeBYczIHBDwdEVFnoKuG1N14967TxHweEMCNxQcHRFLvQEABGvHVEeeuJwBgJDDQUh5G5CyGlCyDlCyIdVjnsHIYQSQg73cn2crVNPZlubrh/1OnjoidMz/uDhE3jb/3oCn/vxRcR4/86GMWzCHSHEDOCvAdwJYB7Ac4SQhymlJ1uO8wL4dQDP9H6VnK0Sz5bgtJolnSfGqM+OaLqIWo3CZCIGrY6zHajVKD731CUAwPGFk/jq8/P41q/fbuyiBgwjPYqbAJyjlF6glJYAfBnAfTLHfQzAnwHgcYoBJJ4rNyWyGaNeOyo1KoWmOBy9uBTLAgD+37sP4oYZP04sppAtVgxe1WBhpKHYAWCu4e958ToJQsgNAKYppd9UuyNCyPsIIUcIIUei0aj2K+VsmkSu1NRDwWDd2Tz8xNEbNk3xjgMRfOCOfQCAk0spI5c0cBhpKOTiDVS6kRATgL8E8MFOd0QpfYhSephSejgSiWi4RM5WiedKCLhlPAredMfpES/PJ+CwmrB/1INrpkYAAMf4KN4NYaShmAcw3fD3FIDFhr+9AK4G8CNCyCUANwN4mCe0B4tErizrUURY012KRxSHgW8dXcKFaMboZchydD6JqydHYDGbMOZzIOK14/gCNxQbwUhD8RyA/YSQ3YQQG4B3AXiY3UgpTVJKw5TSXZTSXQCeBnAvpfSIMcvlbIZ4riSbowiLek/rWZ6jGHQK5So+8I8v4Kc/9YTRS2mjUK7i2HwSN+4MSNdds2MEx1QMxVqmiN/6yks4tczDUwzDDAWltALgVwF8F8ArAP6JUnqCEPIgIeReo9bF0Y5qjSKRL7f1UACA22aG3WJCjBuKgefUchoAUCjXUKvRDkf3lhdm4yhVa7hlT0i67uodIzgfzSBXkk9of+ybJ/EvLy7gP332OaQK5V4tta8xtI+CUvptSukVlNK9lNI/Eq/7KKX0YZlj7+DexGCRypdBKWRDT4QQhD12xDLcUAw6Jxbru/PLfTYL/cW5BAC0eRQ1CpxcbPcYUoUy/v34Mg5N+LCYLODrLy22HbMd4Z3ZHN2Q03lqJOi2IZblyexB59JaVrp8eiVt4EraObGYxM6QCyPO+mfwWjGh/ZJoRBo5OpdEqVLDR956JRxWU9Nz285wQ8HRjTjTeZLxKAAg5LFxj2IIWEwUMCZWsZ1Z7jdDkcJVk76m68Z8DuwMufDMxfW24xcSgkc0E3RhJujqOw/JKLih4OhGgnkUbgVD4bZzOYUOUErxsW+exGs//iielTmx9QMLiTz2j3oxOeLAxVh/7cBXUgXs8Dvbrn/N7iCOXJIxFPE8TAQYH3FgJujG5Rg3FAA3FBwdqXsU8qGnsMeGtWwJlPZXArSfeH42jr978iIWEnk8cbY/m0kXE3lM+h0Ie/sr51QoV1Eo12RzZHsiHsRzZaRbktXziTzGfA5YzSZMB51YSOR7tdy+hhsKjm4wj0LuiwoIoadSpYZsqdrLZQ0UPzodhdlEEHLbcG61//oUqjWKaKaIcZ8DQbetr8qdlQQpAWBS9DKWks19PPPxvOSBjHodyBQritVR2wluKDi6Ec+VYDYR+Bzy2pMhtxDX5uEnZZ67tI6rd4zghplAXxqKTLECSgGf09p3ocREXl7iHgAmRwQJmcUGj4FSirMraewf8wAQpPABIMrVA7ih4OhHPFeG32kFIfLqsCGP8AVe66NwRT9BKcWp5TQOTXixb9SDS7EsKtWa0ctqgoVufA6rUJzQR6HEeFb0KJzKHsViou5RRNNFxHNlHBjzAhCEK9n12x1uKDi6IQgCyucngPrs7H7ahfYTK6kikvkyDo77sG/Ug3KVYrbPqnAyogqrx2FByG1DsY9CiWqhz1GvHWYTafIoWGnvFeOCoWAeBdcj44aCoyPxrHxXNiMoVkPx7mx5Loo1/HsjHuwbFcIh/RZ+yhREQ2G3SO/nep94iIk8G8PbvlmxmE0Y89qxmGwwFGJpL/co2uGGgqMbcQWJcYZ0YuGGQpao6GmN+ezYG3ED6D9DkW70KFgosU+aKFkye0Qm9AQI4acmj2I5jbDHhpDo6QZcNlhMBKt8ZC83FBz9SCgMLWI4rGa4bGbEuaGQhSnrjnod8DqsGPc5cL7PDAXzKHwOi1Sc0C8eRapQhtVM4GyZrsgQDEXdCJxZSeOAGHYCAJNJkJnhHgU3FBydoJSKsyiUPQpA8CrW+ZQ7WaKZImwWE3xOoWps36gH5/pMyjsthZ6sDaHE/jixpvJl+BzKxRQTfgeWkwXUahS1GsWZlQyuGPM2HRPx2nmOAtxQcHQiX66iWKmpJrMBwVBwj0KeaKqIiMcunej2jXpwfjXTN1VFAJApCuGdxtBTv+SckvmyYtgJAHb4nShVa1jLFjEXzyFfrkr5CUbEyz0KgBsKjk6wDt2wGI5QIuDqryatfiKaKUqVNwCwd9SDbKna1iRmJJlCBYQALqsZLpsFTqu5j0JPFXhVDMXkSL1EVkpkjzcbilHuUQDghoKjEywR23iik4OHnpRZTRWlyhsA2BcRKp/O91H4KSmGd0wmwesRFIH74/0U1ibf7AkIoScAWErkcUYsjd0v41HEMkVU+2zORq/hhoKjC8xd72QoAi6b1BjFaabVo+jHEtlEvtwUXhxxWpHK98f7me4i9AQIooanVzKYCjjhsTcblpDbhhqt92RsV7ih4OgCMxSsqU6JoNuKTLGCYqU/mrT6hVKlhvVsCaNeh3Rd2GODy2bGfLx/hOriLTPRPXaL1IRnNMl8GT4VQzHitMItvp6vLKXa8hNAfWRvv3hJRsENBUcX1sTQE0twKsGqoljNO0eAVQ6N+uqGlk0FXOujTvZkrtQkkeGym5Hrg85sSilSBXWPghCCnSE3Xrgcx7nVTNMUPAYr+e2n19wIuKHg6EI0XUTQbYPVrP4RC7p4050cqykxdNfikfVbFY7gUdRPxm67Bdk+8CgK5RrKVQqfQ73qbnfYjaPzwijXW/eG2m4Ps0quPknQGwU3FBxdiKaLbSc5OZhHwUtkm2GVTWM+R9P1YY+tr3a3iVypSabFY+uP0FNSzJOwHhQldoZcAITX9dopf9vtIa5HBoAbCo5OtCZileB6T/LMxwXxv+lg83S2fvIoqjWKVKHSFN7pl9BTqqAu38G4/4Yd2BNx4/2v2wuzqb0xz++0wkS4wrG6ueVwNkk0XcTOna6Ox7HdaHybV5W0Mreeg9dhaTvRhT12xHNllKu1jmE9vWG79sbQk8duQbZUAaVUsSO6F0geRYfQ0xVjXjz6wTsUbzeZCIJue990mxsF9yg4mkMpxVqXHkXAZYXNbMJCH1Xy9ANz8TymA662ky17TfshZi7NRG8IPbntFlAKw70KVqLbyaPoBiHcZ/zrbSTcUHA0J1OsoFCudWUoLGYTDox7cWIx1YOVDQ6X13NtYSegXm7cD3kKJuM90pLMBoCsweNDWehJrTy2W0IeG89RGL0AzvDRbbMd4+odPhxfTPaVhpGRUEoxH89hOtAeuuun8ZyyHoVNUGrNFo31KJIdJMY3Qthj3/Y5NG4oOJrTbbMd44bpABK5Ms72UcexkUQzRRTKNcyEZAyF+JpG+2CHy3pfGvsoJI/C4MqnlKhq61WR8OgWYRY4NxQcjqaweG63HsWt+4T69SfPrum2pkFiThx3KudRMOPbDx5FPCefzAZgeIlsMl+Gy2bWJOEf8tjEcKrx1VxGwQ0FR3Oi4kSwbvooAGAq4MKukAtPneeGAgAWxGE6OwLtOQqnzQyP3dIXOYpkrgRCmiuLXGLoKWd0jqKDztNG4JV53FBwdCCaKcJsIqrzslt57b4wnr6wjnK1puPKBgPWfBhSGPokCO8Z39SWEE/Gpob+g7pHYXCOQlS11QLmMW1nmRluKDiaE00XEXLbmk4gnbhtXxiZYgVH5xM6rmwwWM8KO3WlHbHXYZGqevTgxGISr//ED/HtY0uqx8Vz5ab8BNBPOQrtPApmKLhHYRCEkLsJIacJIecIIR+Wuf23CCEnCSFHCSE/IITsNGKdnI2xlil1nZ9g3LI3BEKAJ8/GdFrV4LCeLWHEaYVFIb7u01nK+++euIjZWA6///AJ1eMSuVKTciwAuG19YijylY7yHd3CPGPuURgAIcQM4K8B/BSAQwDeTQg51HLYiwAOU0qvBfDPAP6st6vkbIZourtmu0b8Lht2h904uZTUaVWDw3quJEmbyOFzWKWqHj1gFVXRdFE1F5JoEQQEALe9T8pjeehJU4z0KG4CcI5SeoFSWgLwZQD3NR5AKf0hpTQn/vk0gKker5GzCboVBGxlT9iDi2tZHVY0WMSzJUlVVw6f06KrR7GeLcFmEU4NZ8QRoXIk8qW2PJTFbILdYuqLhjstmu0AnswGjDUUOwDMNfw9L16nxHsB/LvcDYSQ9xFCjhBCjkSjUQ2XyNkotZog3xHeoEcBAHsiblyK5bb92Mn1bElS1ZVD8Cj0MxTxbAm37BFKlk+vqBiKnHwewGOw1Hi1RpEuVDQzFA6rGQ6raVtPuTPSUMhlOmXPEISQ/wDgMIBPyN1OKX2IUnqYUno4EolouETORknky6jU6CY9CjdKlRoWE9tb92ktU1KseAKEHEWmWEFNB4NKKUUsW8IVYx547RZcUvDwKtUa0oVKW+gJEBRkjTQUGTEsp1UyGwD8ThsPPRnEPIDphr+nACy2HkQIeTOAjwC4l1JqfPE4RxUW095ojgIQhsgAwIVtHH6qVGuIZYsYbZlD0YjPIQjvpXU4GefLVRQrNQTdduwMu3AplpM9jqmzypVAu20WQ8tjJZ0nDbqyGX6XVWow3I4YaSieA7CfELKbEGID8C4ADzceQAi5AcCnIRiJVQPWyNkgG9V5amR3RDAUF6N1KY+vv7SA3/u349umKzaWLYFSYMyn/PqxnbIeeYr1hh6OXSE3ZmPyRluuK5vhsVsMbbirDy3SzqMIuGxI5nnoqedQSisAfhXAdwG8AuCfKKUnCCEPEkLuFQ/7BAAPgK8SQl4ihDyscHecPmGjOk+NRDx2eO0WnI8KJ6eVVAH/7csv4QtPz+JvHjuv6Tr7lZWU0JU96lXxKJih0CFPwQxFwG3DTNCF+XheNsTFTppy4R2XwTkKLSXGGdvdozB0cBGl9NsAvt1y3UcbLr+554vibImteBSEENywM4BHT63C851T+PxTl+CymTEx4sDf/2QWH3jDPsOH9egNm5U9qvL6sbJPPbqzmaEIuq0Y9dpRqVHEcyVpJCiDxevlQk8euxkL8T7wKDQqjwWE8u1OyeyamEQfkfGyBp3h/tZxes5apgibxbTp+PDP3rgDC4k8/s+PzsNtt+BvHziMD911EOvZEp65sK7xavuP5ZT8rOxGWCOZHh4FKwENuu2IiF6NnFKtWujJbbMY2kchjUHV8IQdcFmRyJVVpfD/+YV5XPfg93B8Yfh6gbihGEKWkwX8wcMnpLnLvYT1UGx2DOZbr5nA1Tt8OLwzgKc+/EbcujeM118Rgc1iwmNnhj9NtZDIw2omXXkUSR1yFExOO+iyIewRvIW1dPtOmu2uWzuzAUHGw8g+irpHoW0yu1Kjqqq4T58XVAU+99QlzR63X+j6lSSEBABMAsgDuEQp5eptfcoXn57F5566hBOLSXz1v9za08deShYwqpKI7YTFbMLX/uutsJhM0rB7p82M66f8ePZSXKtl9i3z8Twm/U5VnSyfjsnseK4Es4nA57RIvTBy3dnJfBkmAnjt7acQt1gea9Tc7FS+AhOpy4logb9BxsOrENJiBuq0SpPioKLqURBCRgghv0MIOQahM/rTAP4JwCwh5KuEkDf0YpGcjfHD08LO+7lLcSz0uCfhUiyL3SH3lu7DbjFLRoJxeFcAxxeSQ1/9tBDPYYe/XV68Ea/dAkKgi4zHeraMgMsGQojqNL14rtSmHMtw2y2oUaBQNmYvybqyNyJK2Qkmfqjmxc2Kc0TOrqaHrmm0U+jpnyF0T99OKT1AKb1NbGybBvBxAPcRQt6r+yo5XbOSKuDEYgpvOjgKADjXw6lx+VIVS8kCdoW3ZijkuHrHCKo1irMrwz0Fbz6e72goTCYCj10fGY94toSAGNv32i2wWUyyHkUiV1aUkfcYPDdbS50nhr+DMGC1RnE5lkPQbUOhXJOGTw0LqoaCUnonpfQLlNI27WdK6fOU0t+glP6dfsvjbJTHzggSJu++aQYAsJzsnUcxuy6Ute7WwVAcmvABAF5ZSml+3/1CsVLFarqIKZnJdq3oJeORLtY1kgghiHjsssnsRK6smCx2Gawgq+XQIoYkDKjQS7GcKqBUreHOK8cAqEufDCJdJ7MJIdcSQu4lhPwM+9FzYZzN8ezFdQTdNrzuiggIEXIGveJiVD9DMRN0wW0z4+QQGYpUodwU1llUmWzXik+n4UWZQkXyCAAg7LHJhp7kBAEZHlFB1qhxqMl8WTOJcQYzPEoeBWtMfPMhwVCoiSkOIl29moSQzwC4FsAJACzwSAH8i07r4mySI5fW8aqdAdgsJoQ9diz30lCIXxY9Qk8mE8HBCR9OLg6PofjF//sMji0kceYPfwqPnFzBB/7xBQDoGHoChIoePTyKTLGCqWDdo4l47dJo1kYSuTKuGPXK3kd9eJEx+aRUoaJaXrwZRjrkKGZFqZMrJ7yYDjqHzqPo1uzeTCltnRXB6TNW0wVciuXwC68Rwk4TI46eexQRr71pR6olhyZ8+LcXFwyrptGSQrmKY2K9/XdOLOMfnp6Vbpvq0qPQIw6eKVaaKpnCHjtenm/vC1ALPbGqoLSOCrdqJHUIPTEFWSVDMR/PwWwimBhx4sCYF2eGzFB0G3r6icxQIY7OrKYL+LUvvdh1XP55sXz08K4gAKG7Vy5s0MgPT63in47MqTYSdQOlFMcWktijgzfB2BtxI12sSN3Dg8wLs/VS3+8eX8YLl+O4ccaPn7lxBya78iisSOtQ9ZQpVCSPABAMRSxTbKriKVdryBQriqEnf4cwjd6k8trNomhEUJBVyFEkixj12mE2EVwx5sWFaBalyvB0EHS79fs8BGOxDKAIQSKcipPnODrxh998Bd94eRG1GsVf/+KNHY8/vpiE2URw9eQIAOXdYCO/9qUXkSkKcemfvmZi02t9/OwaTi2n8Yf3X73p++gE6xRey7RLSgwa7H25dW8I3xJnU//23QdxszgHohN6DC+q1SiypWqTRxjx2lGjQjks0+9KqHRlA53DNHpSENVvtfYoAOH5Khm/lVRBCnddMeZFpUYxG8ti/5h8eG7Q6Naj+AyA/wjgbgD3AHib+JujE6VKDT88JfRD/PD0aldqnJfWcpgOOKXpZBFv+26wkUK5KiUcv9gQ+tgo69kSPvTVl7E34sY7XqXfEELWKdzJSxoEjs4nsDPkwh+9/RqMOK0Ie+x41c5A1//vc1iRLlY0rddn5axeR7NHATQ33akJAgL1hkAjDAXzsrwadmUzRpxWJBSe03KqgHHRUDCPkMmxDAPdGorLlNKHKaUXKaWz7EfXlQ0xlNKOoZ7Ty2mkixU8cMtO5EpVfP+VzvIVF9eyTYnkxt2gHJfE5PPBcS+eOh/bdEfpl5+7jNV0EZ969w1wWM2buo9ukBrAMoP/BTy3msGBMS92h9149iNvwvd/63UbEjxkJ+OMhuEntmlorXoCmo2zJPOhMFzJbCLwOiyGGAq2odKyK5sx4rQiqeJRjI8IhkKtUXFQ6faTeYoQ8o+EkHfz8titQSnFL33mWfzHv3tW9ThWQfSum2bgtJrx8lxbK0vb/c7GstjV0BXNdoNKH1jWjPe7bz2EgMuKB795ouvn0cj3TqzguqkRXCWGvPSCfQHltIcGiVqNYnY9J5UR2y1mWc0kNZiOkZaVT8zoNOUoZGQ86gqzymv2u6yGGApm7Nx27TcsSs8pV6og3VBpxXS6VofIUHRrdp0QchNvabiOl8dugifOruGJs2sAhKSg0i7yYjQLQoSehN1hNy5E1TuSE7kysqUqpltKGwHBUFwpk344t5oBIYI8xj3XTeJfN1FRVKtRnFxK4YFbdnb9P5vFY7fAbjHJNoANEovJPEqV2pbKiBvDO9Mdju0WNjHP42jOUQDNxjkmDTdSH65kxIxpVpLr1qHyzu+yyTbcsRJ0NmzKbbfAZTMPlUfR1atJKf1/9F7IduFfXpiXLl+IZnFgXD7ZdSmWxeSIEw6rGXtHPR09CqbptMNfrx+PyMSXGzkfzWIqIDzGTNCFdKEiSDOo7BRbWUoVtnzS6xamP7Q24F9AVnO/M9S5A1sJaSaFhh4F66RuLI9lMh5RGY8i4FZOGPudNkM8CpZn0cNQjDitKJRrKJSrTSFWlosYb+jdiHRRcThIdBIF/F1CSFDl9jcSQt6m/bKGk0q1hh+ejuKaHUKI5tSyctmrkG8QTiR7wm7MxXOqgnisX2JipF5aGe4QKz2/msG+iAeA0PkMAJc3WJs/K8633qoQYLeEFSQlBglm1Kf8mzcU9XGoGuYoCu0eBZPxaDTO69kSvHYL7Bbl8I7XYdGlfLcTWZk8i1awKq9WA8iGTY2NNG/Sto2hAHAMwDcIIT8ghHyCEPLbhJCPEkK+ICrK3gPgGf2XORy8PJ9EMl/GA7fuAlDfWcpxca2eb9g76gGl6scviiefxhp8t80Mp1XZBZ6L5yQDsVN8rNkNGgqWS9nZA48CGI6d2pLY6Tw2svkSXz2GF6UVTrJhb7NxjmVLCHrUvU6P3WKIhAczFC6bDjkKp/CcW4tD5IZNjfrsWE0PftEFo5Mo4Ncppa8F8F8gyHeYAaQAfBHATZTS36SURvVf5nDw2OlVmAjw5itHMeazK57449kSkvmylOxkTWznVfIUi8k8bGYTQg1hIylUI7MDTxXKSBcqkmGZFENWixuUJZ+N5WC3mDChsWSCEmGP/PMZJJaSeYQ9dtUdeSf0mEkheRQthiLSove0ni2qJrIBoTvbGI9C8Lr18ChYqC2ebX7Nl5MFeOyW5v6TIfMous1RnAVwVue1DD2PnYnihpkA/C4bdgbduCyqrbZySixT3SuGhfZEREOhIhm+mChgwu9o0+APe2yyoRq2q2WGwuuwwuuwYGmDhuLiWhY7Qy5Ntf/ViHjtiGVLqFRrsAzo/OzFZEEyzJvFY9N+JkW2KB/fD3vseGmu3rgZy5Q6yox4HYJHUa3RttkielL3KLQ3FMw4tnoUQrNds3cY8dqRKlTa8hmDymB+0waQWKaIowtJvP6KCABgJuRS9CiePBeF2UTwql1CA5bLZsEOvxMX1uQNCwAsJfKYGGk/+SiFauRCVTv8TlkBOCUuRDN45OSKFLbqBRGvHZRioGU8FhXeq41gMhF4NZ5JkSlW4LCa2irxwh471rP1xs31bKkLj8KYmRSZUgU2s0lqOtWSoFjCHMu2G4rxlvdz2HopuKHoEU9fWAelwO37wwCAnUEXVtNF5EvtCeqfnI/huqmRpuEreyJu9dBTIi+rESSEntpPqvNSlVT9fwQRwe49iv/9o/MAgNfsVqx30JwIawAb0PATpVQ06p31nDrhc2o7kyJdrMBjb69kGvUJjZuzsSwopYjnSgiqlMYCdUPR6/BTrljVpYcCqA8vircZimKbWu2oKDczLL0UmzYUhJDf0HIhw86xhSSsZoJDk8IAnhmxNHIu3uxVlKs1nFhM4YaZZjmHvREPzq9mZDu6K9UaVtJFTMqcfITdYAnlarNA2Xw8B5vZJDUHAYJ30W2OglKK77+ygrffsAO/fPuerv5HCwZ9p5YqVJAtVbccegLE4UUa5yg8MifZOw+NwWomeM9nn8NCIo9ylTblwuRgBkfLzvFuyBYrupTGAoDNYoLXbmnyZms1KngULYaClZgb0UuiB1vxKH5Ls1VsA04sJnFg3CslMFm1UWv46cxKGsVKDddONXc5Hxj3IluqyoafVtNCWEDJowDqsguM+fU8dgScTbmFSb8T8VxZ1stpJZUXei6uEpJZHuIAACAASURBVA1fr6hrDw3mF5B5bNp4FBZNy2OzxUpTaSxjYsSJ377rIC6v5/CNlwUBw25DT72WGmcCl3oRcNuaDMVatohKjbaFntg4WaMUdLVmK4ZisAcC9Jjzqxnsbxj0IpWjxppP/ExW4+B48wn4FlFV9Knzsbb7lk4+MrtUpaa7+XiuLSHJdrndhJ9Y6Cfi7a2KaydZkn6nXkSgkUehpYRHsaKYBH7g1l1wWE34xsuLAIBQp/JYZih6XCKbK1V1KY1ljPnsTWJ/83GxJ6blu8RKaZVEBAeNrRgK7WQrh5xajWI1XWzadQRcVnjtlrYGNzaMZibY3Iy1M+RC0G3DycV22XCWgJabjKbUdDcfz7fNZma73MUuEtrs/sI9lvvuJ3kESinORzMoVrqf5MbWzWLYW0EYh6rdiahQVj7J2iwmXDvll0bRsqZRxbUZlKPI6Bh6AoDpgAvzDd9ZZiimW75LXocFJrJNQk+EkDQhJCXzkwYw2aM1DjyxbElwTxvimIQQ2cqn2VgOo147nC1fWEIIwh5bWw03AKmkVbbqSWYHni1WEMu2lzgyQ9NNnmLNII+CPWY3vRSfefIirvy97+CjXz+uyzo+99QlvOnPH8Mff+uVrv8n1oWgXrcIHoV2J+J8uQqnSiknMw57I+6O80CMmnKX1Tn0NBV0SbI1QH1j1zrn3GQiot7VNvAoKKVeSqlP5sdLKdXv3RgyVmQ6NwHBS2j1KGbXc23eBMPvsslKhi8k8vA6LNKXs5G6NHex6XgATQKCbH2E1G9XwyiPAuiumSlfquLPvnsK+XIV3zq6tOUJfnKw+d1fem5Oeo87sZ4twmE1aRIe8TmFXoVKVZtJap0MBevnufPQeMf7YifrXiezhdCTnh6FE5TWN1Pz8TxCbpvsYwoigtvAUBBCPkkIeQchhHsPW4CpS7YmvGaCbszHc03DZy5EM9IXspWggqE4s5KWmvNacVjN8NotTSfWebHSqtWjsFlMGPM6ujIUa5kiLCYijb3sJZ30nsrVGr51bAmFcg1vu3YCsWwJl1TkTxjfPbGM3/u34/iDh0909RospwoIum2o1ig+/diFrtYey5QQcts1mfnNyqe1ksoolGuwqxiKn7lhCn9wzyH85p37O96Xy2aGiRgTepKr3NIKtrli1YpyuT6GUQq6etApR3EOwM8AeIoQckmcSfEBQsgNhBDeg9ElcuqSgOBRlKtUSh6vZ0tYy5RwhcL4RKHionmHQinF6eU0Diqo0AJi013DiXVuXT4BBwhJ1oV4dx5FyGPrWUd2I51CTz/9/z2B//7VlwEA73/dXgBC1ZkaxxeSeP8XnsdXnpvD539yCQ89dr7jOlZSBRzeGcD91+/APz47K3UFqxHLljomgrvFp7EwYKGk7lE4bWa857W7u5IeIYT0XO+JUqpreSzQYCjE79CCTK6PoTY6ddDoFHr6K0rpL1BKdwG4BcL8ib0AvgpAXfe6CwghdxNCThNCzhFCPixzu50Q8hXx9mcIIbu2+phGsJIqwETq08IYkmJrLIeFRF6Kpe8blfcOAi5hh9IYRolmiojnyopy5YCQ0F5r8SjsFpOUv2hkR8DVtUdhRH4CEDyKRK4sO7w+kSvhrFg59ouvmcH+MQ/MJtJxet9jZwTJsh9/+I346asn8M2jS6h1GDO6nBQ6ct985SgK5RouqnTOM2Jd6CR1C0sYayXnnS9X4bRpt//zalyV1YlStYZKjepqKMZ9DljNBPPxHGo1KhaFyHsUAYX5FYNIx08FEbgWwH3iz+sheBp/vpUHJoSYAfw1gJ8CcAjAuwkhh1oOey+AOKV0H4C/BPCnW3lMo1hOFhD22Nu0iZihuBTL4Ve++DweObmCm/cEcaPC7OSg24ZKjTaVHJ5ZFk6KB1SGuEe89qYO0bl14cMtF/6YHHFgOVnoGNNfy5QMyU8ADcN0ZLwKFmL65M9fjz+49yo4rGbsCrk6GoqnL8RwYMyLiNeONx4cRSxbwisqMvD5UhUpcaoZ22XOxzuHt9bF0JMWSFLjGpyMy+JJVs2j2Cheh6WnOQppaJGO5bFmE8Gk34m5eB6r6SJK1VqH0NM28CgIIY8AeBrAByBMuPtjSumrKKV3U0r/xxYf+yYA5yilFyilJQBfhmCIGrkPwOfFy/8M4E1Ei+Buj1mW0YIBhAY3q5ngy89dxsvzSTx431X48vtuaZLuaIRJCCQawk9spoWaRzHhE6Q52Ml/PpFTdJcjXjtK1ZpiOCOZK+P9XziCYwtJWY+kF7B+ETnPh/WlXDXpkzSL9kY80nxwOUqVGo5ciuOWvUKvyq37hN/PXlxX/B+WKwq5bVJpZKdZHpRSrGkYehpRmI+wGfLirBMtBex6PZNCSdRQa66a9OEbLy/i/V98HoAwBkAOv0tQ0NWq2MBIOnkUFyD0S+wXf/YRQsIaPfYOAHMNf8+L18keQymtAEgCCLXeESHkfYSQI4SQI9Fo/6meC+qS7YbCbCKYCrhwdD4Jl82M+29offrNBEWZ4/WGBNnZlQzCHptqueKE34lCuSbtbubjeUwH5XdB9Sop+Sqev/rhWXz3xAoAyHbx9gI2JEku1HNxTRgh21jRNSF6SUocW0giX67i5j2CZtW4zwGH1aRaJswMhd9lxYjLCp/DIsWtlciWqihVapqFnkac2hmKgg6GwmO3IF3s3Y6a5UO8On8u33ubIFnDpk62NscyAuLGzohJf1rTKUfxfkrpzQDuB/AjAK8C8EVCyPOEkM+r/W8XyHkGrfGObo4BpfQhSulhSunhSCSyxWVpjyAaJn8iZ+Gnm/eEOiYJ5UTJLsay0twKJSZFb2YxmUe6UEYiV1b0KCQxs5R8svh7J1cw5rPD67Dgpl29EwNsZCrghMVEcEnGUJyPZrHD72w64Y2POAWNJYXEKkt0XzftB1Cf46Em6JYUje6I2IE7MeJs6tiVIyaGyjrpJHWLpoaiJOx6tQw9jTitPT1JZqTBS/pW4r1qZwCvPHi39LeS4WcT8YahRLZb01sEkAOQFy9PAdjqp30eaJoLPwVgUeGYeUKIBcAIAOV4QB9SKFeRzJcxptCJy1z+u6/uXJvOZI4bS2Qvx3J47T51J29CbKRbShRgEiN3rZ2kDLm+C8ZiIo/ZWA6/f88hvOfWXZqUeG4Gi9mE6aALF6LthuJCNNNWKswaEZdTBdky4leWUvC7rE1VaaNeh2qvBvvys5OBMNFMvbeDNdtpFXpyWs2wmommoafWRs+tEPLYsd5DTS65Ua564bSZ8Z3fuF22AZbBDPkwlMh2ylH8JSHkGQBLAB4E4AXwaQAHKKXXbPGxnwOwnxCymxBiA/AuAA+3HPMwgAfEy+8A8CjVo3NKRyTJBgWP4jfevB/3XDeJt3cIOwF1RUomSlYoV7GcKmBnSH328k7RazkXzShq0zDU1FlZF/kVY17DjATj0IQPxxaaS15rNYoL0WybMWD5IaXw0ymxvLjxOY128ChYGI+FFyJeO6IdPAp20tQqmU0I0WzXLhkKDT2KoNuGbKnalcikFiiNctWLg+M+Ka8lB/tsDENCu9MrehHAPwB4kVKq6btNKa0QQn4VwHchjFj9DKX0BCHkQQBHKKUPA/g7AF8ghJyD4Em8S8s19AI2N1dJ2+fWvWHcure7tI/PYYHZRKQPHpMP6GQoAm4bpoNOHJ1PwCYmeJUMhc9hgc1ikj1Jsu5jucR8r7luegTfOraEWKYo5WeWUgXky9W2hkXmUSzJGApKKc6vZnDv9c09pRGvHT8+t6b4+KzsUfIovA5EM0VQShWNaCwrvKZa5SgAoelOE0MhnsztVu3KY1k5eCxbxJRN/TO6GQrlKp67tI7b9wvhZuZR6J2j6Bb/ECnIqr6ilNJP6fnglNJvA/h2y3UfbbhcAPBOPdegNyzWr+RRbARCCAIuqxTCYDt8JcmPRq6b8uPIpTgCLhu8DoviyYoQglGFqXjsRNvaOGgE104J+YSj80m84eAoACHsBKDNo2CFBHJjXuO5MlKFCnaHm/9ntMMoy2SuDLvFJN026rWjXKWI58qKr63WoSdAO2HAgi4ehfCZX8+WFHNiW+Edf/MUji+k8P3fej32jXqQERPnvfIoOsEUZOXUFAYN3l2tM6saqoUCQMTrwKq4s78seRSdR5HeujeM5VQB33h5sS3M0v4Y8oZiJVWA127RvfywG67ZMQITAV6aq/d9spnie0ebXw+H1Yyg24YlmdDQxTXhf/a0FASw90spTxHPlaQdI1DfCDAPUo5YpgSn1aypFpFWoaeCLjkK0aPQIU9xOZbD8QWhNJwVNWQKFRACXWXGNwJTkB36qifO1llNF2A2Ec0qXaYCTinPcHk9B6/dIg1JUeONB0dhIsKENbWeC0BZdG8pmcdYH4SdAKFWft+op8lQnFgUktJy/R3jPvkSWZYQ39ViKNSS+oAQTmA7RqBztRgg7Ky19CYA7QyFHjmKsFu5MXKrfPNYve6FbZjSonKs0fkzxjApyHJDoTOrqSIiHrtmmkhTASfm4jlpFsJMyNXVF2N8xIHf+ekrcWDMi3uvU0+cCxU87SfVS2s57OqQD+klt+wJ4ZmLMWk3/Oyldbx6V1D29ZgYccj2RVxcy8JiIm05G2YolE78iXxZangDII2UVUuAr2WKmm0YGP1sKIKe5uILLfnxuTUcHPfCZTNLAn2ZQgXePvB2G+mFguxnnrwoDZTSi64NBSHkm2p/c+RZTRc1yU8wpgMu5EpVrGdLOLaQ7DhAppFfvn0Pvvubr8NNu9X7H8Z9DsRzZeRK9b6D3/nXYzi9ku7Ys9FL7jgoaCw9c3EdZ1bSmI3lcKtCFcr4iEO2z+HiWhYzQZfUxc1g71lUIZSUzJWbPLluQk/r2ZKmiWxAMBSpfLmjLlUn6sls7QyF22aG3WKScjNaQSnFC7MJ3LwnhJmgSyrqyCiMcjUSv0tfBdlajeLBb57Er33pRV2ryzbiUfznDn9zZFhNF6XdphawE/Wjp1aRyJWlJjEtYclgFpZ5fnYd//jMZQD1pr9+4JY9IdgtJvzw1Cr+9okLsFtMuO96eW9p0u9EQmYe+MU1+YbFkNsOE1H2EBL5UlPoyWWzwGO3qIaeYpmSlODVihGnFTUKZEpbk8rQI5ktDNvqbsjURoimi8iXq9gbcWMq4JI64vWebrcZ/E6rrsnsRtmYJ87qp0rRtaGglC6p/c2RJ5ouIKJRIhsArtohyAX8g3jivnaqe4+iW5h67dlVQUjvhVkhD0AIcNdVY5o/3mZxWM24ZW8In3vqEr72wgJ+4TUzijv2iYbudEatRhUNhdlEEHDZFHfDiVy5KZkNQLFaDACqNYpoRrlDf7NI3dkKcfBYpog//vYrHQc9Fco1mE0EVrO28f2g26Z56GlWPDlOB12YCQrDvyilSBf0nW63GQSPTz+9qxOLdeHKx40yFIQQHyHkTwghXyCE/ELLbf9bt1UNCZQK5ZJaxqVHvQ6M+xx4aS4Bh9WkOLtiK+wMuWExEZwTq4heWUphzGfHxT95K/aNav94W+ENB4TS2GqN4lfu2Kd4HJsHvtQwD3wpVUCxUsNupUFRbptsZ3G+VEWxUmvKUQBMpVc+9BTLFFGtUdlxtVvB10HG48lza3jo8Qt4z2efVb0fNt1O60RwyGPTvOrpcqxe7TcTdCJfriKWLSFTrPRNDwXD59RXav3cagaEALftC+OxM1FdJjkCnT2Kz0LQW/oagHcRQr5GCGFbopt1WdEQkStVUa1RzT+8b79RCK9cP+1vi61rgc1iwq6wG2dXBENxZjWti0HSgruuGseeiBt/8XPXqc7HmPS3exQXxdCaUt5FaTcsNds5mzcAoz6HYqhqWWEc7lbxd1CQXRNP0icWU6p5jLxCv8hWCbntksaVVrBBX5N+h9SfMR/PI9OHHoXPIeSQ9DqBn49msMPvxFuuGsPcer6rSY6bodOrupdS+rPi5X8jhHwEwKOEkHt1Wc2QwXYSPo3Hhf63N+3HnrAbrz+gnwDivogHZ1aE0NNysrChpHkvGR9x4NEP3tHVcUCzR3FODK0pjZENeWyycyxYuaNc6Gk1Jd+dvaQwDnerMG9VKUTWeJK+GGuXN2EUSlU4NOzKltbnEcJ3ah3rGyVVqMBpNcNuMUvlxnHRo9BbEHCj+JwW1KigHKyHEbuwlsGeiAevv0I4Fzx+JqpLwUmnT4a9ceQppfSPADwE4HHIyH1zmmFa/ErzJTaLw2rGOw9Pa9bEJ8f+MWGGQ65UQSxb0vWxeoHdYkbYY5N2o4Cwyw57bIrFBooehYqhyJersuM/VxTG4W4VJl+itGtvTCS/eFl5KCULPWlNyG1DsVJDVsOKnFS+LHnpLCcVzRT7suqJfffTOoWfLseEkvWdITd2hlx4/Iw+eYpOhuIbAN7YeAWl9PMAPghg8PvSdYZJK/Rb3LQb9o16UKPC8B5KtZEgMZqJEScWG5ruji+mcGhyRHGnG3TbkciXUW0J2SQVQ0/KvRTLyQIsJqI6N2Qz+J1WmE1EMQ+wlinhygkfvHYLXpqLK96PMAZVe0PBTuRahp9ShbLkpTOhTNaE2m99FFrPNW8kV6ogVahIXuq7Xj2DqyblZ2NslU5aT7+tcP13IAwy4qigV+ipF+wXk9ZMGE9JJn2QmBhxSMOOipUqzq6k8QaV8F3IbQOlglxH49hXZY+i3p3dGuJZThYw6rXDrFHjJcNkIgi6bZLgYCsxcbZ50G3Fy3NJ2WMAKGpabRX2usWypSapmUtrWdgsJkz65cUp1UgXKtK8cK/dAquZSL0U/eZRsE2iHgltpjTACiT+6x17NX8MBu/M1pF66Km/PrzdsCfiBiHAE2cFQzEMHsUecSRqvlTFmeUMKjWKqyaVcy9Bt3xncVwl9ATIN90tpwq6yZ+E3DYpad3KSkro4zk04cPplbTiWM58uaZPMltG7+niWhZ3ffJxvPHPfyTliTaCEHoSXntBKNMm9RP0YzIbgCbCja0wQ6F1gYQc3FDoSD30NHgehcNqxu6QG6eW07CaidRbMcjctDuAcpXixbk4np8V5l+puepSorjlJJzIl2Azm9pi+qM+ZSHB5VRBN9XdsEe+sqhcrWElXcCk34mD4z6UKjXF2eH5UgUuHQyFXOjpO8eXUazUUCjX8MGvHt3wTOlUodLkpQfdNqmUO9BHDaFAQ+hJD48ixTyKjXtlG6VTHwUvgd0CqT7Tx98oh8ST6LVTfk0VT43i8K4gHFYT/vQ7p/Hpxy/g2qkR1VkeSlpFyZyg89Sa2/A5LLDLzPKglGI5KT83XQtYZVEry8kCKAV2+B1SefN5mamAgFDKrUeOgg1palzf87Nx7AkLJc0vzyXwpMrcDznShXKTlx5w2aTy4H6YldIIW6ceOQqmXaZ1b44cnTwK3lS3BRI5QVZaD5e+F+wR4+z3XDth8Eq0weew4r+/5QBenktgKVnAx+67WrVksx56aj7xx7IlaSxtI4QQQVCxRVNqPVtCrlTFdBdzQzZDyG3HmowXw04kk36nZPTiCmW0eZ0MhdNmhttmbvLKXp5P4PppvzSwa0FGrFGNVL7S5KUHGxR5+81QeHUMPc2t5xHx2ntyfhn8bWIfIyfzMEi897bd2BN2497rJjsfPCC897bdGHFacfWOEVw5oV4hwsIYrbv1qIrQ46i3velOmhuil6Hw1EeONp7smdTFpN8pCRjGFaQ+8uWqLqEnQDiRs2T7WqaIaLqIQ5M+hD02ECLkUbqlUK6iVK3B56yfupjR9tgtfZejsFmEEKUeoaf5RE5xUqXWdHpV9xBCWudYS1BKeeOdCvFcWdLiGURGnFbc38Us70GCEIJ3Hp7u6lir2QS/y9omahdNF9sGHTFGvXacFePlhXIVX31+XorBz+gk0a40cvSpc2sIuW3YHRIKE2wWk9RV3gilVDAUOg38CbntUviONTAeHPfBYjYh7Gn3wNRgJ9xGj4KVyKp15huJz2mRClu0ZG49j+t1EAWVo5OhiAL4814sZBhJ5kt9l1zjbIyJEWdTNzelgrif0klptGHW9of++WjTnIBpHcaBAg15gEx95CilFE+ei+H2/WFpFkrAZUUi276zLZRroBRw6pSHCntsWBBfw1eWBBG7gxNCzmTcJy//rgSL9TfmKFjRQb9uynwO7fWeqjWKxUQeb+tRWLjTJyNDKX2sJysZQhK58lBUC21ndvgdUjMXIBQolCo1ZUPhcyBVqODiWrbZSASduuQAACDsbZ8kNx/PYy1TxOFd9dkjfqdNVvKazR1x6iDhAQi5nqPzQg/HqeU0wh671F8x5rNLRqQb0jK9Sex1ZXpe/YbXYdE8mb2cKqBSo7rlvVrp9Mm42JNVDCmJ/GDnKDhCfL9xMh4bZKRkKNj1T1+IAQDeLobuahurAN0QrH+jMdb/wmWhC7sxNCEM0Wnf2eZEeQ29KtumAi5EM0Uk82WcWk7hyom6wOSYzyHJm3RDSqY3iUmjX92nemR6KMjOi/mnXuUoOhmKPyGEjLM/CCG/RAj5OiHkU4QQ9TFp2xxKKRK5EkacPPQ0yOzwO5EqVKSdLEtUq4WeAEH6BBCS5wDwmj36fV1GvcKQpUYdKybF3ejRBlzyHoU0BlUnj+fVu4KgFHjy7BpOL6elsmtAMBTr2RKKle60oFj1UKN+2r3X7cCfveNavO/2PdouXCN8Dm3G1TYyJ3q5eoUzW+lkKD4NUdOJEPI6AB8H8PcAkhDEATkK5EpVlKuUexQDDpOYWBTDI6yZTklIkEl3fO/EMmwWEw5N+PDIb74Of3j/1bqt0WI2YcznkNYICKGJgMvaVDqplFTNSx6FPobihhk/XDYzfuMrL6JcpbipIRw2Jo2c7a7ySVI7aAg9mU0EP3d4GhYdJPe1QKu55o0siIZiokfhtk6vrJlSui5e/nkAD1FKv0Yp/T0AylNiONJA9QA3FANN3VAIX0x2Qot45L+gUwGhFDVbqmIm6ILJRLB/zKt7w+LEiKPJo1hJFdsa/JSSqiz0pJdH4bCa8St37EW5SuGwmnB4Z6OhcIjr7S78VK966q8yWDUCLsFQtIpLboWVdAEhtw12S296tDoaCkIIe0feBODRhtsG550yADZQnYeeBpsdoqFgTWHRTBE2i6mpjr8RQgiunRLyAgd6OOxpwu9sSrqvpts7wb0OK3KlaptkRr7Mktn6nXQ+8IZ9+Pav347HP/SGpsmArEFuscuEdipfhsVEdF2r1vhdgriklk13Kzp2+svRyVB8CcBjhJCvA8gDeAIACCH7IISfOAokFYTjOIPFqNcOq5nUDUW6iIjHrtrRfZ2YQO7le39gzIu5eA5ZcRbGcrJdW4oZt9bwk97JbEAwoIcmfZIeFmN32A2bxYSj88qzMhpJizpPWo9s1ZOAmzU7ynfFn1pO4flZZQl4OVbSBc3nr6uhaijEQUUfBPA5ALfR+jw/E4Bf03dpg42SwihnsDCZCMZH6iWy8+v5jto6bzk0BqA+z7sXXDnhA6VC+WmxUkU0U2yTs/BKQ3SUDEXvd+l2ixnXTY3g/z5xURL2UyNVKA9U2AkQPApAviu+UK7i7k8+gZ/9P0+hvAFxRLnQop50zP5QSp+mlP4rpTTbcN0ZSukL+i5tsFGaq8wZPGaCLsyt50ApxStLqY7SH1fvGMGJ/3EX3iwajF5w9Q5hTS/PJbCYEMQAW2vsfQqzEQo6Vz114p2vEjrlf3R6teOxqXxZ84mResOabhMyHsWjp+rP+cddiiNWaxRrmaJiQYUe9GeZwBCgNNyGM3jMBN2YW89hPp5HuljpaCgAwN1jzaGJESd2hlx46vyaNMRnuqXGXhKoazEURnoUAPDOw1Mwm4hiaKYRIfQ0WB6Fms7Wo6dW4bQKwokPNzRoqpEulEEpMNJD1QduKHQini3BYTUNrHIsp85M0IVYtiT1RhzSadzkVrl1bxjPXFiXZk60eRROeclrZigcPaqgaYUQAr/TqihY2EiqUIbXPlibLxZVkPMojs0nceveEO66ahw/PLWKenRfGVZq20vJEkMMBSEkSAh5hBByVvwdkDnmekLITwghJwghRwkhP2/EWjfLmooeEGewmBFPuN85sQwT6W0100Z47b4Q0sUK/uHpy/DaLbLlsUBdBoORL1XgsJokTSgjELrGO3sUqfzgeRRehwUmgrau+FqN4lIsi91hN66b9iOeK3ele7VtDAWADwP4AaV0P4AfiH+3kgPwS5TSqwDcDeCThJDeSCVqQDQjVMdwBh823OiRkyvYE/EYFsvvxC17QgCA0ytp3H5FuG0+tzSWUyaZbfRgqoDLhriMYGErwtCiwfIoTCYCv0xX/HKqgGKlht0RtzRp8cRCquP9bSdDcR+Az4uXPw/g/tYDxIT5WfHyIoBVAJGerXCLRNPcoxgWGkM4r97Vv8o1oYaNyZ0yiXSPg5XHtnoUVcP7EuROpK1UqjVkS9WBHC0sp7N1cU0IEe4OuXHlhA+EACcWuaFoZIxSugQA4m/VOkJCyE0AbADOK9z+PkLIEULIkWg0qvliN8NapiQpZHIGm8Yv5N1Xj6scaTzvvkmoILrrqvZ1mk0EHnu7kqmesyi6JaAgWNhItijkUjwDVh4LyOtsMUOxK+yG227B7pAbJxY7t6ex96+XhkK3V5wQ8n0Act+qj2zwfiYAfAHAA5RS2UJjSulDELWnDh8+rF2f/CYpV2tYz5a4RzFE3HEggvVsCbfvCxu9FFUevO9q/PZdBxVDST6Hpc2jEEJPRnsUVtmhSo1kRTl0d5+G/tQIuKxtcuqX1rJwWE1SY+ShSR9emuvceMg8il7manR7JErpm5VuI4SsEEImKKVLoiGQLaAmhPgAfAvA71JKn9ZpqZrD5gNzQzE8fOaBVwOAoQnfbrCaTdLENzm8MnpP+VLV8Oq8EacVhXINxUpVUb9IKuPts3Gn3eB32drCShfXstgVYvxjEQAAE1pJREFUckufqV0hN/79+DKqNdqWX2okmS/Dau6tjIlRoaeHATwgXn4AwNdbDyCE2AD8K4C/p5R+tYdr2zJ14ThuKIYFk4n0vZHoBjkF2Vy5YrhHwcIoagN+2IAlvWZ760nQbUMsW5LKX2s1iqMLSexvqKCLeO2o1mjHXE0yX4LfZeupjIlRhuLjAO4khJwFcKf4Nwghhwkhfyse83MAXgfgPYSQl8Sf641Z7sZgk8bC3KPg9BlyHkU/VD0x2XA1Oe66RzF4hiLssaFUqSEtanEdW0gimi7iDQfq9TksAtFJcj2eLcPf47Gvhnw6KKUxCGq0rdcfAfDL4uUvAvhij5emCdyj4PQrPocF51abd+3ZYgUeg8M53RkK0aMw2KhtBmYE1tJF+BxW/ODUKkwEuKNBD6zRUFypMgo7nitJsiC9gndm60A0oz4FjcMxCq/D2pbM7ocmNin0pDIylHkUg5jMZhWQ0XQRlFJ878QybpwJINiQT4p4uvMokgaMWOaGQgei6SK8DovhCUIOpxWf04JUoSLFykuVGvLlquFNbPUchYqhKBorXrgVJG8hU8Rzl+I4tZzGfddPKh6jRjxX4oZiGOBd2Zx+xeuwolqj0pxstoP39Tjm3QozVN2EntwDGHpiHsXceh6/+ZWXMDniwNtvnGo6xm23wGUzq3oUlFLEc+Weh54G7xUfAKLpIk9kc/oSScYjX4HLZpF28H0TelIxFFmdR7bqSdBlww6/E3/6nVMAgC/955tl80KjXjtWVQxFoVxDqVKTZlz0Cu5R6MAal+/g9CneFhkPpvvUyy5fOWwWE5xWs6pHkS9VYTYR2C2Dd9oymQg+dNcB7A678fv3HMIte0Oyx0W8dkTTysKArHS216En7lHoQDRTxOt46InTh/haksaSR9EH+kk+p6VjeazLah6oMaiN3H/DDtx/ww7VYyJeO04vpxVvZ4YiwHMUxlCu1nB0PoHVLmR+1SiUq0gXKtyj4PQlzKNgjW39kqMABK+mU45iEMNOGyHisavmKJLSQDQeejKEeLaEe//qx/j348tbup9YVrD4IRUZBQ7HKHyOVo+i0nS9kYw4rR06s6s9nxzYa8IeO1KFijSetpW4QZMzuaEQiXjt8DksOLuq7PZ1Q0aM+Q6iFDJn+JGm3BVaPQrjT8A+RxcexZCXnLMimPWsvIxHPfTEPQpDIIRg/5gXZ1cyW7qfjNii7x5AmQHO8NM65S6ZL8Ni6q3AnBKdQ0/Vof9esUjEmkIvhRGzKABuKJrYF/Hg3OrWDIVU6z3kLjJnMLFbTLCZTfUcRb4Mn9PaFwlin7Ndh6qRbKkK5wD2UGwE5lEwBepW4tkSnFZzz5t5uaFoYP+YB7FsSdHt64ZscXCbgjjDDyEEXoelnqMoVAwvjWX4XVakCxVUqrJjZ5AvVQZSvmMjhN3q3dnruVLPK54Abiia2DfqAYAteRUZNoWLexScPsXntEpS46l8Gb4+mRjHdI/iCpPussXq0Fc9hb3Ca6DkUaxnSwh6el8oww1FA0wb/szK5hPaWZ6j4PQ5Xke9IztVKPdFaSxQNxRKHn2+XB16T91ls8BpNSvmKOLZEoLu3pfec0PRwOSIAw6rCbOx7KbvI8tzFJw+x9cwk0LwKPrLUMSy8ifJbNH4AUu9IOy1IaZgKGLZkiGl99xQNEAIwXTAhdlYbtP3kS1WBlZmgLM98DrqU+6SfSAxzpBCT9n20FO1RlGs1AZyFsVGCbntWFMLPXFDYTwzQRcur2/FUFThtg2uzABn+PE5rEjly6hUa1jP9o/ScT301L6brg8t2gYehccuG3oqlKvIlarcUPQD00EX5tZzkl7/Rsn0wbQwDkcNv9uKRK6M1XQRNQqM+hxGLwlAvYksJpOjyA/wGNSNEvbYZF8Ddh03FH3ADr8T2VJV6lzdKLlSBS5uKDh9zM6gG6VqDS/PJQAAY31iKKxmE0acVtlktjQve5t4FOvZEmq15s3qeoYbir5hbET40qxsUhwwUxx+PRrOYLMr5AIAPHNxHQAw3ieGAhA6k+V206xIxGkd/u9WyGNDtUaRaOlSX88ZpyPHDUULY2Jn5HJyc4ZCGFQ//LsezuCyM+wGUDcUo77+yFEAwm55XSaRy0JP26HsnE3Da81TsNwN9yj6gPEtehTZYmXoa705g82EzwGfw4JXllKwW0x9k8wGgIDbJht6ym6z0BPQbihYE16I91EYD4vXbtpQlCo89MTpa0wmgpt2CxPWdofdMJn6p0Iv5LZJIZZG8lLV0/B/t8IeJgzY/DqsZ0swm4gh5czcULTgsJoR9tg33UuRLQ6/wiVn8Hn9gQgA9RnVRhB02xDPltqqDrPF7edRtDbdrWdLCLhshpTec0Mhw/5RD85FN6f3lClyj4LT/7xdHMn59hvVR3P2mqDbhkqNtg0wypWZoRj+79aI0wqzibSHngzqygb4zGxZ9o168G8vLoBS2mS92S5HyaKXqzWUKjV4tsGHmTPYeOwWnHzwLjgs/bVDD3nqMh4jDSqpueL2abgzmQjCHlvbSFSjurIB7lHIsn/Mg3SxgtWWN+ovHjmDN/zPHylWRNUFAbmh4PQ/Lpulr/ITACTBu9aENuuj6IcBS71g1OtoO//EDVKOBbihkGVfRJAbb5129+nHLuBSLIcvP3dZ9v+y26iEj8PRg6BCdzYbg9pvhk0vxnx2rKT6J/TEDYUM+8bYXIq63PjlWA4lcaDKMxfWZf+PexQcztZgO+a4jEexnTZgoz4HVhsqL8vVGpL5Mg899RMRjx0+hwVnGwYYPXluDQDwlkNjePpiDH/xyJm2/0vkjJlny+EMCyG3kkcx/EOLGhn12hHLllAWN6fxnHHyHYBBhoIQEiSEPEIIOSv+Dqgc6yOELBBC/qqH68P+MW/TpLufXIhhzGfHX/z89Qi57fjUD85KipYM9mYycTMOh7MxHFYzXDZzW44iXSjDa98+GzDWz8US2uy3Ec12gHEexYcB/IBSuh/AD8S/lfgYgMd6sqoG9kU8TYbi0loWB8Z98Ngt+P17DgFAmxx5QjQUfgNm2nI4w0JQpjs7VajA2ycjW3vBqCglxBLaF6LCMLXdovxKrzHKUNwH4PPi5c8DuF/uIELIqwCMAfhej9YlsX/Mg1i2JMVK5+I5TAecAISZFYCQt2iEzfrlHgWHs3nkhAHThQq8fTKJrxe0KkScXc3ARIA9ke1lKMYopUsAIP4ebT2AEGIC8OcAPtTpzggh7yOEHCGEHIlGo5oscGdIeENm13NIF8pI5MqYCggGQjIU662GogSb2bQtar05HL0Q9J6aK35S+XLfTOLrBUyokSW0z69mMBN0wWFQebBurzwh5PsAxmVu+kiXd/ErAL5NKZ3r1LJOKX0IwEMAcPjw4c1NHGphOih4D3PrOWmsKbvO77LCa7dgrjX0lC3D77Ly6XYczhYIum1tpenpQv/M9u4FIbcdJlIPPZ1dTWPfqMew9ehmKCilb1a6jRCyQgiZoJQuEUImAKzKHHYLgNsJIb8CwAPARgjJUErV8hmaMS16D3PxujHYExbeKEIIZkIuzMp4FDzsxOFsDSH0VPcoajWKTHF75SjMJoKI146lZAGVag0X17J448Exw9Zj1Cv/MIAHAHxc/P311gMopb/ILhNC3gPgcK+MBCD0QoTcNjxycgXnxN1NY3xwJujC6ZV00//EcyUE3Ntn18Ph6EHQbUehXBOmRdosyJYqqFFsK48CECYRXo7lMLueQ7lKsd9Aj8KoHMXHAdxJCDkL4E7xbxBCDhNC/tagNbVxz3WTePFyAmmxka4xPjgTdGF+Pd80rlDonOwfbX8OZxCReilEme20OJZ4O3kUgFDhdGEtg+MLSQDAgXGvYWsx5JWnlMYAvEnm+iMAflnm+s8B+JzuC2vhI2+9Em++cgwvzcWxQ6x4YkwHXShVa1hJFzAxItxmpGgXhzMssO/QeraE6aALqYJQTbidqp4AIYLxlSMlPH5mDQ6rCQe3m6EYFKxmE27bH8Zt+8Ntt+0U5w7PxnKYGHGiUq0hkTOuxZ7DGRYCDYYCqHsU26nqCah7EF97YR6v3hWAxWyckAaX8NgkrSWyrIciZJC6I4czLITaDMX29Chu2h0EK6C8ftpv6Fq4odgkk34nTKTedMc+1Nyj4HC2BhMGZN8pNsRou+UoXDYLDo77AADXTHFDMZBYzSbsiXhwcikFAFI5HzcUHM7W8NotsJqJ1J3NPIrtVvUEAH/7wGG841VTuEMcXWsU3FBsgRum/XjxchyUUmn3w6ueOJytQQhB0G2TRoGmtmnVEwDs8DvxP995neFGkhuKLXDjzgDiuTJmYzkeeuJwNGRvxIMzYp9SqlCGzWwyTL6Cww3FlrhhRogbvnA5LtV8B7hyLIezZa6ZGsErSykUK1WkC5VtV/HUb/BXfwvsH/XCY7fghctxEBD4XVZDS9g4nGHhuik/ylWKE4sppPLlbVfx1G/ws9oWMJsIbpjx47mLcd5sx+FoyM17QgCAp86tIZou8u+WwXBDsUVu3hPC6ZU0zkcz0mB4DoezNYJuGw5N+PDkuTWcW80YqnPE4YZiy7xmdxAAcGo5jUm/s8PRHA6nW27bH8bTF9YRy5YMldjmcEOxZa6ZGoFNzEtMBbih4HC04rX76tI5V4wZp3PE4YZiy9gtZkyJA43YBDwOh7N1Xr0rIF0+3HCZ03t41ZMGXD/tx4VoFiNOXpnB4WiFy2bBvlEPiHiZYxz81deA33vrIQRdNrzpyrbR3xwOZwt8+9dvN3oJHHBDoQkBtw2/+7ZDRi+Dwxk6bBYeHe8H+LvA4XA4HFW4oeBwOByOKtxQcDgcDkcVbig4HA6Howo3FBwOh8NRhRsKDofD4ajCDQWHw+FwVOGGgsPhcDiqEEqp0WvQFEJIFMCs0evoQBjAmtGL0IhheS7D8jwA/lz6lX5/LjsppRG5G4bOUAwChJAjlNLDRq9DC4bluQzL8wD4c+lXBvm58NATh8PhcFThhoLD4XA4qnBDYQwPGb0ADRmW5zIszwPgz6VfGdjnwnMUHA6Hw1GFexQcDofDUYUbCg6Hw+GoQynd9j8APgNgFcDxhuuuA/ATAMcAfAOAT7zeBuCz4vUvA7ij4X++I153AsDfADB3+3ji9Z8AcArAUQD/CsCv8P9BAI8AOCv+DojX3wdgHUAZQB7AbQP8XO4AUGp4Lh8d4OfybMPzOA6gCuD2AXweAQCXAFQA5ABcPQDvyTvFx6gBONxwfQjAknh9bEC+90rP5SYAL4k/LwN4uxbnxabH1voOB/EHwOsA3IhmQ/EcgNeLl/8TgI+Jlz8A4LPi5VEAzwMwiX+zDxUB8DUA7+r28cTr3wLAIl7+UwB/qvD/fwbgw+LlD7PjAHga7vssgFMD/FzuAPDUkLwv0v0CuAfAowP6PD4B4WR3I4AzAH4wAO/JlQAOAPgRmk+ubnF9f4RmQzGIz8XV8P//fzvnFqJTFMXx39aUMSi5jSmaT4kaeULySjJ5cM0DJTVepkx5URJvXsSLQnkiU5qU4mk0LtGUa+5hGkYmDFFu41Iky8NaY7av7xzmomZP61e7sy/fXnv/+86ctc/ae74q1BmVlbLR3+ShJ0BEWtGVeMwsoNXyZ4E1lq8Bzlu/N8AHYJ6Vu+0zZegKpORJgYzxEJEzIvLDileBqRlTXgEctfxRYKX1/xzZHhGNn5wW410J28lpKbK7DmhKUYfN7bDZ/g4UQgiVQ1mLiLSJSHuJ+i8ichB4X9SUopavUf/yrPEHgjuKbO4Dyy2/Fphm+bvAihBCWQhhOjA3aiOE0IJ69E/AiQGMXweczmirFJFXAHadHI2/Cr2hq81GslqAhUAzUB1CmJ24FtAVZy266kxRx11gteVHoffY1CGupa8kqSWEsCCE8AANjdVHjmNQcEeRTR2wOYRwExiLrqBAV1QvgBvAPjQ88vtLEZGl6OvfSGBRfwYOIewwm8f62ldETgKLgWfAroS13EIfRMuAt8CphLX0MBa4JCLvSFPHbnSfohmN8d82OylqySJJLSJyTURmA/OB7SGE8v7MIW8ATxrbK1AUO4zaZgLXM9ouAzUl6jcCB9BVR89GU/3fxrN+V4CKqO6I9W+2cjtQJb0xyfZSWoCnwMRhoqUzZS1mtxtYP4zur04sPj9UtUT1F4ni+lH9VqI9ipS1RO0X8tr7kwbNUOqp+AsEJtt1BNAI1Fm5Ahht+SVAq+XHRH9cZcBxoOFfx7O6WuAhMOkvc93Ln5uNeyw/Aw1vFIAOoMvKKWqZEml5gr4hJanFynPQ1WLPHJPTAYxDY/AFu7cah7qW6PMX+QdHkaIWYDq9m9nVwEuKFlUDTf/loZtaQjcXX6FHGF8Am4At6MmOR+grd89/sRfQFVcbcA79aV6ASvTExD30CNt+Mk4elBrP6juA5/SuRA5l9J+A7kM8tut4q98GfDS7P9GYaapaGoaRliZ08/Mnad9fC9EY/A/T0pWAllXW7xvwGmiJ2j6bDjFNO1PUAmywse+gIduVg/2M9J/wcBzHcXLxzWzHcRwnF3cUjuM4Ti7uKBzHcZxc3FE4juM4ubijcBzHcXJxR+E4juPk4o7CcRzHyeUXsplfw+OUQHMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.plot(ds.time,ds.data[0])\n",
    "plt.ylabel(ds.items[0].name);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The aim is to convert this timeseries to feet (1m = 3.3 ft)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = ds.data\n",
    "data[0] = data[0]*3.3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Which units are acceptable?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[meter,\n",
       " kilometer,\n",
       " centimeter,\n",
       " millimeter,\n",
       " feet,\n",
       " feet US,\n",
       " inch,\n",
       " inch US,\n",
       " mile,\n",
       " mile US,\n",
       " yard,\n",
       " yard US]"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ds.items[0].type.units"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "dfs = Dfs0()\n",
    "\n",
    "items = ds.items\n",
    "items[0].name = \"Viken\"\n",
    "items[0].unit = EUMUnit.feet\n",
    "\n",
    "dfs.create(filename='wl_feet.dfs0', data=ds.data,\n",
    "           start_time=ds.time[0],\n",
    "            dt = 1800,\n",
    "            items=items)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![WL](https://github.com/DHI/mikeio/raw/master/images/wl_feet.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Clean up"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "os.remove(\"test.dfs0\")\n",
    "os.remove(\"modified.dfs0\")\n",
    "os.remove(\"neq.dfs0\")\n",
    "os.remove(\"accumulated.dfs0\")\n",
    "os.remove(\"wl_feet.dfs0\")\n",
    "os.remove(\"mauna_loa_co2_eq_1hr.dfs0\")\n",
    "os.remove(\"mauna_loa_co2.dfs0\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
